Function.apply()

Доступность

Flash Player 6.

Синтаксис

myFunction.apply(thisObject:Object, argumentsArray:Array)

Параметры

thisObject Объект, к которому применяется myFunction.

argumentsArray Массив, элементы которого передаются myFunction в качестве пераметров.

Возвращает

Любое значение, которое определяется вызываемой функцией.

Описание

Метод; указывает значение this, которое будет использовано внутри какой-либо функции, вызываемой в ActionScript. Этот метод также указывает параметры, передаваемые какой-либо вызываемой функции. Из-за того, что метод apply() является методом класса Function, он также является методом для каждого объекта Function в ActionScript.

Параметры указываются в виде объекта Array, в отличие от метода Function.call(), в котором параметры указываются в виде списка с разделяющими запятыми. Это часто бывает полезным, когда, во время исполнения скрипта, число передаваемых параметров неизвестно.

Пример

Следующие вызовы функций эквивалентны:

Math.atan2(1, 0)
Math.atan2.apply(null, [1, 0])

Следующий простой пример демонстрирует как apply() передает массив с параметрами:

function theFunction() {
  trace(arguments);
}

// создается новый массив для передачи в качестве параметра apply()
var firstArray:Array = new Array(1,2,3);
theFunction.apply(null,firstArray);
// выводит: 1,2,3

// создается второй массив для передачи в качестве параметра apply()
var secondArray:Array = new Array("a", "b", "c");
theFunction.apply(null,secondArray);
// выводит a,b,c

Следующий пример показывает как apply() передает массив параметров и задает значение для this:

// определение функции 
function theFunction() {
  trace("this == myObj? " + (this == myObj));
  trace("arguments: " + arguments);
}

// задаем значение объекта
var myObj:Object = new Object();

// создаем массивы для передачи в качестве параметра apply()
var firstArray:Array = new Array(1,2,3);
var secondArray:Array = new Array("a", "b", "c");

// используем apply() для установки значения this, так, чтобы было myObj, и отправляем firstArray
theFunction.apply(myObj,firstArray);
// в окне output: 
// this == myObj? true
// arguments: 1,2,3

// используем apply() для установки значения this, так, чтобы было myObj, и отправляем secondArray
theFunction.apply(myObj,secondArray);
// в окне output: 
// this == myObj? true
// arguments: a,b,c

См. также

Function.call()